home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #1 / Amiga Plus CD - 2000 - No. 1.iso / Tools / Dev / Sas-PPC / readme < prev    next >
Encoding:
Text File  |  1999-12-03  |  5.6 KB  |  222 lines

  1. The archive contains a set of patches to create a PowerPC
  2. compiler and debugger from the SAS/C 6.5x Developement system. 
  3. You must have SAS/C 6.5x installed on your machine to use this 
  4. archive. Also, you must have the original 6.50 disks.
  5.  
  6.  
  7.  
  8.  
  9. To install this patch, type
  10.  
  11.    execute install
  12.  
  13.  
  14.  
  15. Documentation for this compiler and related tools can be found in
  16. the file:
  17.  
  18. manual.txt
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27. Revision History:
  28.  
  29. Beta 22
  30.  
  31.    Add support in SLINK, sc2ppch.library, and libinit.c for Amiga style
  32.    PPC shared libraries - see samplelib in this archive for an example.
  33.    
  34.    Allow anonymous unions like the 68k compiler.
  35.  
  36.    Support __chip in the HUNK version of the compiler.
  37.    
  38.  
  39. Beta 21
  40.  
  41.    Fix another convert long to short bug.
  42.    
  43.    Fix compiler's disassembly output in HUNK version so the source 
  44.    is displayed if debug info is available.
  45.  
  46.    Remove error for empty structure TAG declaration when the TAG is
  47.    already defined.
  48.  
  49. Beta 20
  50.  
  51.    Add ability to generate HUNK style objects and executables.
  52.    
  53.    Fix WHERE in CPRPPC.
  54.  
  55.    Don't use __setjmp in setjmp.h since it causes problems with
  56.    C++.
  57.  
  58.    Fix convert long -> short conversion (was not properly sign 
  59.    extending or 0 extending in some cases).
  60.  
  61.    Fix strtol() which returned the wrong pointer if the string was
  62.    "0" and the base was 0.
  63.  
  64. Beta 19
  65.  
  66.    Fix passing 'this' pointer to member functions called through a 
  67.    function pointer. This was broken in Beta 15 - Beta 18.
  68.  
  69.    Teach CPRPPC about memory 0xfff00000 - 0xfff80000, so it can step
  70.    into the PPC Kernel.
  71.    
  72.    Improve register allocation by boost weight of register parameters.
  73.    This makes it more likely that parameters will stay in registers
  74.    for short functions.
  75.  
  76.  
  77. Beta 18
  78.   
  79.    Fix realloc().
  80.  
  81.  
  82. Beta 17
  83.  
  84.    New cut of C++ with several improvements/fixes.
  85.    
  86.    Fix _tzset() so it doesn't lose memory.
  87.  
  88.  
  89. Beta 16
  90.  
  91.    Added support for running PPC programs from WorkBench, with
  92.    Ralph Schmidt's LoadSeg Patch.
  93.  
  94.  
  95. Beta 15
  96.  
  97.    Changed alignemt of 68k aligned structures in arrays to be more 
  98.    68k-like. This change may require a full rebuild of your projects.
  99.  
  100.    Fixed problem in C++, where  pointers in structures from INCLUDE: 
  101.    were not getting 68k aligned.
  102.  
  103.    Fixed bad uninitialized variable warnings following and empty switch
  104.    statement.
  105.  
  106. Beta 14
  107.  
  108.    Added Readargs() support to CPRPPC to match runelf.
  109.    
  110.    Fix varargs handling (recognition of __optype) that I broke in
  111.    Beta 11 in the process of adding alignment processing for C++.
  112.  
  113.    Runelf will return the PPC program's return code to the shell.
  114.  
  115. Beta 13
  116.  
  117.    Had the wrong version of the library scppc.a in Beta 12, so the taglist
  118.    stubs weren't in there after all. They're really in there this time, honest :)
  119.  
  120.    Runelf has been modified to allow the use of ReadArgs() in PPC programs.
  121.  
  122.  
  123. Beta 12
  124.    Use Volker Barthelmann's 'FD2LibPPC' to generate stubs for all the varargs
  125.    TAGLIST functions.
  126.    
  127.  
  128. Beta 11
  129.  
  130.    Fix bug in builtin memset.
  131.    
  132.    C++ improvements/fixes.
  133.       1) Handle long mangled names better.
  134.       2) Do inlining in translater
  135.       3) Support PPCINCLUDE: and 68k alignement of structures in INCLUDE:
  136.  
  137.    Ignore CPU=060 option.
  138.  
  139.    Ignore FAR in a few more places that I missed previously.
  140.    
  141. Beta 10
  142.  
  143.    Fix bug in peephole opt if PROFILE was on. R31 was not saved and restored
  144.    properly if it was only used in the epilog of the function.
  145.  
  146. Beta 9 (not publicly released)
  147.  
  148.    Fix bug calling a function that returns a structure. In the case where
  149.    the return was not used, the returned structure was placed in the wrong
  150.    place on the stack, ovewritting other temporaries.
  151.  
  152.  
  153. Beta 8 (not publicly released)
  154.   
  155.    Fixed bug in scheduler. When Passing floats, scheduler did not recognize which
  156.    regs were used as parameters properly, and could move a load of a register
  157.    after the call.
  158.    
  159.    Use new method for CTRL-C detection in __chkabort(). It now uses PPCSetSignal()
  160.    instead of SetSignal(). This should be faster, but also requires the 
  161.    PPCTASKSTAG_BREAKSIGNAL to be used when the task is created. This tag is only
  162.    available in V45.5 and above. Runelf and CPRPPC have been modified to use
  163.    this tag.
  164.  
  165. Beta 7 (not publicly released)
  166.  
  167.    CPRPPC will pass a stack of no smaller than 64k to the program being debugged.
  168.    Previously is would pass the shell stack size through. This change makes
  169.    it behave like runelf.
  170.  
  171.    Fixed calling varargs function with doubles with tail recursion.
  172.    CR6 was not being set properly.
  173.    
  174.    Fixed passing floats to functions declared in the old K&R style functions 
  175.    that also had a new style prototype.
  176.  
  177.    Driver was running the 68k version of C++ instead of the PPC version, causing
  178.    improper sizes of structures with sizeof().
  179.  
  180. Beta 6 (not publicly released)
  181.  
  182.    Added C++ support.   
  183.    
  184.    Fixed bug in scheduler that caused it to loop until memory was
  185.    exhausted, in rare cases.
  186.    
  187.  
  188. Beta 5
  189.    
  190.    Fix CTRL-C checking.
  191.  
  192.    Implemented the PROFILE option in the compiler. You can now use the
  193.    SPROF utility with PPC programs. (Sprof runtime requires V45.3 of
  194.    ppc.library). 
  195.    
  196.    Fixed message when CPRPPC detects a CTRL-C.
  197.  
  198.    Fixed bad error when initializing a char array to a constant
  199.    string of the exact length of the array (null byte truncated).
  200.    
  201.    Fixed code generation problem recieveing float paramters in new
  202.    style function declaration.
  203.    
  204.    Fixed problem in 'runelf' not setting the minimum stack size to
  205.    a multiple of four if the shell stack size was less than 64k.
  206.    
  207.  
  208. Beta 4
  209.  
  210.    First public beta release.
  211.  
  212.  
  213.  
  214. Known Bugs.
  215.  
  216. 1) If you declare a varargs function INLINE, the optimizer will inline
  217.    it, but the resulting code is incorrect. The optimizer needs to be
  218.    taught not to inline varargs functions.
  219.    
  220.  
  221.  
  222.